교무처는 학생 프로필, 강좌 세부 정보, 수강 등록 정보를 각각 별도의 테이블에 보관하고 있습니다. 올바른 학생 이름과 올바른 강좌를 나란히 보여주는 보고서를 만들어 보세요. 올바른 학생 이름과 올바른 강좌를 나란히.
세 가지 요청 사항
- Emma Li의 활성 강좌를 찾습니다.
- 활성 수강 등록을 학생 이름 및 강좌명과 함께 나열합니다.
- DSAI 학생들의 활성 PY101 명단을 제공합니다.
PostgreSQL 준비
- pgAdmin에서 제공된
lab6_7_setup.sql파일을 TA 폴더DSAI2202/lab6_7/에서 열고 전체 파일을 한 번 실행하세요. - 최종 개수를 확인하세요: 학생 22명, 강좌 8개, 수강 등록 37건.
- 오른쪽의 연결 설정을 실행하세요. 새로운 데이터베이스 연결을 열 때마다 반복하세요.
- 조인하기 전에 세 개의 테이블을 먼저 살펴보세요.
Lab 7에서도 동일한 설정을 사용하며, 다음이 포함됩니다: assignments, submissions, 그리고 lms_roster. 오늘은 여기에 표시된 세 개의 테이블을 사용하세요. 모든 인물과 기록은 가상입니다.
✍️ 조인 전에 추적해 보기
수강 등록 E01을 찾아보세요. 어떤 학생 ID와 강좌 코드가 들어 있나요? Data 탭을 사용해 학생 이름과 강좌명을 확인하세요.
SET search_path TO lab6_7;SET search_path TO lab6_7;
SELECT student_id, student_name, programme
FROM students
ORDER BY student_id;SET search_path TO lab6_7;
SELECT course_code, course_title, credits
FROM courses
ORDER BY course_code;SET search_path TO lab6_7;
SELECT enrolment_id, student_id, course_code,
enrolment_status, score
FROM enrolments
ORDER BY enrolment_id;세 테이블의 간단한 미리보기
students: 22개 행. student_id 가 기본 키입니다.
| student_id | student_name | programme |
|---|---|---|
| S101 | Alice Wong | DSAI |
| S102 | Ben Lau | CS |
| S105 | Emma Li | CS |
courses: 8개 행. course_code 가 기본 키입니다.
| course_code | course_title | credits |
|---|---|---|
| SQL101 | SQL 기초 | 3 |
| PY101 | Python 프로그래밍 | 3 |
| WEB101 | 웹 데이터베이스 | 3 |
enrolments: 37개 행, 그중 30건은 활성, 7건은 철회. enrolment_id 가 기본 키입니다.
| enrolment_id | student_id | course_code | enrolment_status |
|---|---|---|---|
| E01 | S101 | SQL101 | 활성 |
| E04 | S104 | SQL101 | 철회 |
| E06 | S105 | PY101 | 활성 |
학생 연결
enrolments.student_id → students.student_id외래 키가 한 명의 학생을 가리킵니다.
강좌 연결
enrolments.course_code → courses.course_code외래 키가 하나의 강좌를 가리킵니다.
E01 추적
S101 + SQL101Alice Wong + SQL 기초.
반복되는 ID가 레코드를 연결하며, 이름과 강좌명은 각자의 테이블에 남아 있습니다. 한 학생이 여러 수강 등록에 나타날 수 있습니다.